package com.gurun.camera.device.presenter;

import com.danale.sdk.platform.entity.device.Device;
import com.danale.sdk.platform.entity.v3.PushMsg;
import com.gurun.camera.mvp.IBasePresenter;

import java.util.List;

public interface ICloudAndSDPresenter extends IBasePresenter {

    /**
     * set the device_id
     * @param id
     */
    void setData(String id);

    /**
     * get the sd card state of IPCamera
     */
    void getSDState();
    void getSDRecordList(int year, int month, int day);

    /**
     * get the list of SD card record
     * @param year the year of the start point
     * @param month the month of the start point
     * @param day the day of the start point
     * @param channel the channel of SD card record
     */
    void getSDRecordList(int year, int month, int day, int channel);
    void getSDPlayerInfo(long timestamp);

    /**
     * get the cloud service state of IPCamera
     */
    void getCloudState();
    void getCloudStateList(List<Device> deviceList);
    void getCloudRecordList(long startTimestamp);
    void getCloudPlayerInfo(long timestamp);

    void handleSelectDate(int year, int month, int day);
    void getSDRecordList(long timestamp, int channel);

    /**
     *
     * @param timestamp
     * @param channel
     */
    void getSDPlayerInfo(long timestamp, int channel);

    /**
     * get the list of cloud record
     * @param timestamp the start point of request
     * @param channel the channel of record
     */
    void getCloudRecordList(long timestamp, int channel);

    /**
     * get the cloud record information to play
     * @param timestamp start point of the cloud record
     * @param channel channel of the cloud record
     */
    void getCloudPlayerInfo(long timestamp, int channel);
    void getCloudPlayerInfoByPushMsg(PushMsg pushMsg);
}
